<?php

namespace common\models\hospital;

use Yii;
use yii\behaviors\TimestampBehavior;
use yii\db\ActiveRecord;

/**
 * This is the model class for table "{{%patient_user}}".
 *
 * @property int $id
 * @property int $project_id 项目ID
 * @property string $name 患者姓名
 * @property string $wechatid 微信原始ID
 * @property string $wx_name 微信号
 * @property string $nickname 微信昵称
 * @property string $mobile 手机号
 * @property int $belong_member_id 归属人id，关联member表
 * @property string $belong_member_name 归属人姓名， 冗余字段
 * @property string $avatar 微信头像
 * @property int $gender 性别[0:未知;1:男;2:女]
 * @property string $year 出生年
 * @property int $callback_count 回访次数，冗余字段， 方便列表展示
 * @property int $appoint_time 预约时间
 * @property int $active_time 最近活跃时间
 * @property int $end_reply_time 用户最近回复时间
 * @property int $arrival_visit_time 到诊时间（从医助系统过来）
 * @property int $next_callback_time 下次回访时间
 * @property int $province 省份
 * @property int $city 市
 * @property string $city_title 城市名称， 冗余字段
 * @property string $address 详细地址
 * @property int $source_id 来源id， 关联表 jg_common_source_channel
 * @property string $source_remark 来源备注
 * @property int $marketing_stage_id 营销阶段id，关联表 marketing_stage
 * @property string $profession 职业
 * @property int $marital_status 婚姻状态【0：未知、1：已婚、2：未婚】
 * @property int $pregnant_status 怀孕状态【0：否、1：是】
 * @property string $remark 备注
 * @property string $friends_relation 亲友关系， 存json数据格式
 * @property int $status 状态【-1删除、0禁用、1启用】
 * @property int $relation_id 关联ID （关联用户）
 * @property int $user_relation 关联用户的用户关系 【1：亲友  2：同事  3：朋友  4：同学】
 * @property int $is_repeat 重复的患者id【合并到该id患者了】
 * @property int $modify_time 最后一次更新时间（从微信端数据库同步数据时使用）
 * @property string $consult_room 到诊科室
 * @property int $created_at 创建时间
 * @property int $updated_at 更新时间
 */
class User extends \common\models\BaseModel
{
    const STATUS_DELETE = -1;// 删除
    const STATUS_INVALID = 0;// 失效
    const STATUS_ENABLE = 1;// 正常

    const GENDER_UNKNOWN = 0;// 性别不祥
    const GENDER_MAN = 1;// 男性
    const STATUS_WOMAN = 2;// 女性

    const IS_REPEAT = 1;// 重复数据
    const UN_REPEAT = 0;// 不重复数据（默认）

    const GENDER = ['未知', '男', '女'];
    const MARITal = ['未知', '已婚', '未婚'];

    const DEFAULTMARKETINGSTAGE = 100;// 待处理
    const UNTRACKED = 107;// 待跟踪

    const USER_RELATION = [
        1 => '亲友', 2 => '同事', 3 => '朋友', 4 => '同学'
    ];

    /**
     * {@inheritdoc}
     */
    public static function tableName()
    {
        return '{{%patient_user}}';
    }

    public static function getDb()
    {
        return Yii::$app->get('db2');
    }

    public static $gender = [
        self::GENDER_UNKNOWN => '不详',
        self::GENDER_MAN => '男性',
        self::STATUS_WOMAN => '女性',
    ];

    /**
     * {@inheritdoc}
     */
    public function rules()
    {
        return [
            [['project_id', 'belong_member_id', 'gender', 'callback_count', 'appoint_time', 'active_time', 'end_reply_time', 'arrival_visit_time', 'next_callback_time', 'province', 'city', 'source_id', 'marketing_stage_id', 'marital_status', 'pregnant_status', 'status', 'relation_id', 'user_relation', 'is_repeat', 'modify_time', 'created_at', 'updated_at'], 'integer'],
            [['year'], 'safe'],
            [['friends_relation'], 'string'],
            [['name'], 'string', 'max' => 20],
            [['wechatid', 'wx_name', 'profession'], 'string', 'max' => 100],
            [['nickname', 'mobile', 'belong_member_name', 'city_title', 'consult_room'], 'string', 'max' => 50],
            [['avatar', 'address', 'source_remark', 'remark'], 'string', 'max' => 255],
        ];
    }

    /**
     * {@inheritdoc}
     */
    public function attributeLabels()
    {
        return [
            'id' => 'ID',
            'project_id' => '项目ID',
            'name' => '患者姓名',
            'wechatid' => '微信原始ID',
            'wx_name' => '微信号',
            'nickname' => '微信昵称',
            'mobile' => '手机号',
            'belong_member_id' => '归属人id，关联member表',
            'belong_member_name' => '归属人姓名， 冗余字段',
            'avatar' => '微信头像',
            'gender' => '性别[0:未知;1:男;2:女]',
            'year' => '出生年',
            'callback_count' => '回访次数，冗余字段， 方便列表展示',
            'appoint_time' => '预约时间',
            'active_time' => '最近活跃时间',
            'end_reply_time' => '用户最近回复时间',
            'arrival_visit_time' => '到诊时间（从医助系统过来）',
            'next_callback_time' => '下次回访时间',
            'province' => '省份',
            'city' => '市',
            'city_title' => '城市名称， 冗余字段',
            'address' => '详细地址',
            'source_id' => '来源id， 关联表 jg_common_source_channel',
            'source_remark' => '来源备注',
            'marketing_stage_id' => '营销阶段id，关联表 marketing_stage',
            'profession' => '职业',
            'marital_status' => '婚姻状态【0：未知、1：已婚、2：未婚】',
            'pregnant_status' => '怀孕状态【0：否、1：是】',
            'remark' => '备注',
            'friends_relation' => '亲友关系， 存json数据格式',
            'relation_id' => '关联ID （关联用户）',
            'user_relation' => '关联用户的用户关系 【1：亲友  2：同事  3：朋友  4：同学】',
            'is_repeat' => '重复的患者id【合并到该id患者了】',
            'modify_time' => '最后一次更新时间（从微信端数据库同步数据时使用）',
            'consult_room' => '到诊科室',
            'created_at' => '创建时间',
            'updated_at' => '更新时间',
        ];
    }
}
